home *** CD-ROM | disk | FTP | other *** search
- //var RDF = Components.classes['@mozilla.org/rdf/rdf-service;1'].getService();
- //RDF = RDF.QueryInterface(Components.interfaces.nsIRDFService);
- //var aim = RDF.GetDataSource("rdf:AIM");
- var container = Components.classes['@mozilla.org/rdf/container;1'].createInstance();
- container = container.QueryInterface(Components.interfaces.nsIRDFContainer);
- container.Init(AimDataSource, RDF.GetResource("NC:AIM/BuddyList"));
- var gScreenName;
- var gGroupArray;
- var abCard;
- var aimABInfo;
- var gGroupInitState = new Array();
- var pIAimBuddy = pIIMManager.QueryInterface(Components.interfaces.nsIAimBuddy);
-
- function OnLoadABTab()
- {
- dump("Calling OnLoadABTab\n");
-
- // Initialize online state
- var target = AimDataSource.GetTarget(AimSession, SessionState, true);
- var state = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
-
- if (!(state == "Online" || "OnlineAway" == state))
- {
- document.getElementById("OnlineOrg").setAttribute("OnlineState", "Offline");
- document.getElementById("OfflineOrg").setAttribute("OnlineState", "Offline");
- }
- else // we're online
- {
- RegisterSaveListener(OnUnloadABTab);
- document.getElementById("OnlineOrg").setAttribute("OnlineState", "Online");
- document.getElementById("OfflineOrg").setAttribute("OnlineState", "Online");
- // editCard is in mozilla/ mailnews/ addrbook/ resources/ content/ abCardOverlay.js
- abCard = editCard.card;
- // pIIMManager is in Aim.js
- aimABInfo = pIIMManager.QueryInterface(Components.interfaces.nsIAimABInfo);
-
- try
- { gScreenName = aimABInfo.GetScreenNameFromABURI(abCard.cardURI); }
- catch(ex)
- { gScreenName = ""; }
- setTimeout('BuildGroupFrame()',50);
-
- document.getElementById('ScreenName').setAttribute("value", gScreenName);
- // document.getElementById('ScreenName').setAttribute("disabled", true);
- // document.getElementById('BuddyListCheckbox').checked = true;
- // document.getElementById('BuddyListCheckbox').disabled = true;
- // document.getElementById('profile').disabled = true;
- }
- }
-
- function OnUnloadABTab()
- {
- dump("Calling OnUnloadABTab\n");
- var popup = null;
- var uri = null;
- try {
- uri = abCard.cardURI;
- }
- catch (e)
- {
- // If this is a New Addressbook card, then we need to grab the URI
- popup = document.getElementById('abPopup');
- if ( popup )
- {
- uri = popup.getAttribute('data');
- }
- }
- var changedScreenName = false;
- if (gScreenName && (gScreenName != document.getElementById('ScreenName').value))
- {
- changedScreenName = true;
- aimABInfo.RemoveABURIFromScreenName(gScreenName, uri);
- }
- gScreenName = document.getElementById('ScreenName').value;
- aimABInfo.SaveScreenNameAndABURI(gScreenName, uri);
-
- var currentlyChecked;
- for ( var i=0; i < gGroupArray.length; i++ )
- {
- currentlyChecked = GetCheckBoxState( gGroupArray, i );
-
- // if the box is checked AND it was not previously checked (or the user changed the IM screen name, add the buddy to the group
- if (currentlyChecked && (!gGroupInitState[i] || changedScreenName))
- {
- try
- {
- //pIAimBuddy.AddBuddy(gGroupArray[i], gScreenName, null, aimInsertionStyles().InsertEnd);}
- aimBuddyAddBuddyAfter(gGroupArray[i], gScreenName, null);}
- catch (e)
- { dump("error adding buddy\n");
- }
- }
- // if it was checked before, but not checked now, remove the buddy unless the user changed im screen names
- else if( !currentlyChecked && gGroupInitState[i] && !changedScreenName)
- {
- try
- {
- aimBuddyRemoveBuddy(gGroupArray[i], gScreenName);
- }
- catch (e)
- { dump("error removing buddy\n");
- }
- }
- }
- }
-
- function BuildGroupFrame()
- {
- // if(gScreenName == "")
- // return;
- if(document.getElementById("AddBuddyGroupList").childNodes.length > 0)
- return;
-
- var a = new Array();
- var i = 0;
- gGroupArray = a;
-
- var enumerator = container.GetElements();
- while (enumerator.hasMoreElements())
- {
- var element = enumerator.getNext();
- var resource = element.QueryInterface(Components.interfaces.nsIRDFResource);
- var attr = AimDataSource.GetTarget(resource,
- RDF.GetResource("http://home.netscape.com/NC-rdf#Name"), true);
- if (attr)
- attr = attr.QueryInterface(Components.interfaces.nsIRDFLiteral);
- if (attr)
- {
- attr = attr.Value;
- a[ i ] = attr;
- i = i + 1;
- }
- }
- CreateGroupList( a );
- }
- function CreateGroupList( a )
- {
- listDocument = document.getElementById("AddBuddyGroupList")
- dump("listDocument"+listDocument.nodeName+"\n")
- listDocument.appendChild(document.createElement("spring"))
-
- for ( var i=0; i < a.length; i++ ) {
- chkboxname = "checkBox" + a[i];
- var inBudGroup = new Object();
- if ("" != gScreenName)
- {
- pIAimBuddy.BuddyIsInGroup(gScreenName, a[i], inBudGroup);
- }
-
- outputElement = document.createElement('checkbox')
- outputElement.setAttribute('id',chkboxname)
- outputElement.setAttribute('name',a[i])
- outputElement.setAttribute('value',a[i])
-
- if (inBudGroup.value == true) {
- outputElement.setAttribute('checked',true)
- gGroupInitState[i] = true;
- }
- else
- gGroupInitState[i]=false;
- listDocument.appendChild(outputElement)
- }
- listDocument.appendChild(document.createElement("spring"))
- }
-
-
- function GetCheckBoxState( a, i )
- {
- chkboxname = "checkBox" + a[i];
- chkbox = document.getElementById(chkboxname);
- return( chkbox.checked );
- }
-
- // for later
-
- function FindSelectedGroup()
- {
- // Locate selection in setup list
- // XXX There must be a better way to do this
-
- var selectedGroup = null;
- var selectedBuddy = null;
- var tree = window.tree;
- dump( "Tree is " + tree + "\n" );
- DumpDOM( tree );
- var groups = tree.childNodes[2].childNodes;
-
- for (var i = 0; i != groups.length; i++) {
- if (groups[i].getAttribute("selected") == "true") {
- selectedGroup = groups[i].getAttribute("Name");
- break;
- }
- }
- return( selectedGroup );
- }
-
-